429419589540ac51e9cbb3d8835040d83c0ea11e,src/core/lombok/core/configuration/FileSystemSourceCache.java,FileSystemSourceCache,sourcesForJavaFile,#URI#ConfigurationProblemReporter#,47

Before Change


		try {
			file = new File(uri);
			if (!file.exists()) throw new IllegalArgumentException("File does not exist: " + uri);
			return sourcesForDirectory(file.getParentFile(), reporter);
		} catch (IllegalArgumentException e) {
			// This means that the file as passed is not actually a file at all, and some exotic path system is involved.
			// examples: sourcecontrol://jazz stuff, or an actual relative path (uri.isAbsolute() is completely different, that checks presence of schema!),

After Change


			try {
				File file = new File(uri);
				if (!file.exists()) throw new IllegalArgumentException("File does not exist: " + uri);
				dir = file.isDirectory() ? file : file.getParentFile();
				if (dir != null) uriCache.put(javaFile,dir);
			} catch (IllegalArgumentException e) {
				// This means that the file as passed is not actually a file at all, and some exotic path system is involved.
				// examples: sourcecontrol://jazz stuff, or an actual relative path (uri.isAbsolute() is completely different, that checks presence of schema!),
				// or it's eclipse trying to parse a snippet, which has "/Foo.java" as uri.
				// At some point it might be worth investigating abstracting away the notion of "I can read lombok.config if present in
				// current context, and I can give you may parent context", using ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(javaFile) as basis.
				
				// For now, we just carry on as if there is no lombok.config. (intentional fallthrough)
			} catch (Exception e) {
				// Especially for eclipse's sake, exceptions here make eclipse borderline unusable, so let's play nice.
				ProblemReporter.error("Can't find absolute path of file being compiled: " + javaFile, e);
			}
		}
		
		if (dir != null) {
			try {
				return sourcesForDirectory(dir, reporter);
			} catch (Exception e) {